added user table
include bcrypt
further encapsulation