initial commit basic functionalities