refactor props, online status added
cleanup - still pretty hacky