refactored main so there is a separate core and shell
tried to expose the can be ticked as an explicit port