requirements & clean up