restructure & cleanup