create tests
havenot tested thoroughly though