In getCategoryTypes() you're assigning a reference to the return value of getContentTypes(), and PHP doesn't like that. You can return a reference to a variable from a function, but taking the reference of a *value* is meaningless since you can only create references to variables. Just remove the & on that marked line to get rid of the warning. Also, I notice that both of those methods (and I assume many more) take a reference in $db. Note that all objects are assigned by reference in PHP 5, and thus the & here is unnecessary since you are passing an object to these methods and aren't changing the reference inside the method. Note that PHP won't issue a warning for these since it is acceptable and you might want to point the reference to a new object inside the function. You aren't doing that here, so the & is superfluous and misleading. David