refactor code,
add new classes,
improve architecture.