Added Book and Category models

the main prpose of having factory method here - incapsulate populating id
to prevent it replacement from internal call.

Also we'll have to populate query results into objects, so we have to create separate method that will return qualified object to avoid code duplication.

At now factory method looks silly with so much arguments.
But we have to somehow incapsulate book creation logic to allow create abjects from query results

I didn't like to pass array into it..But having a lot of arguments looks bad too..

So @bstrx could you suggest any solution?)