cleaned up setup()