better implementation of survey maker