Rework a bit the database model... it becomes bloated but I can't seem to find a better scheme ..