added a function, new design ideas