UNTESTED! complete all main functionalites except message