refactor, migrate code to silk