Totally refactored projection, now fixed some issues with
projection on structured fields in inherited model classes.