initial user implementatin