manual kernel
ruby impl
refactoring