Initail version with basic functionality