refactor of icarus