implemented table abstraction, added user and role management