still need to implement many-to-many