Completed models | will add more features according to requirements