refactored esn_kernel as a separate application
refactored esn_kernel