full functionality added