finish separation of concerns