implimented devise