clean class system. needs framework