fixed bugs, refactored, new design