basically available. need to test every function carefully