cleaned up design