Interim update - refactoring heavily - broken