restructure into separate components