Base working implementation with bcrypt