Major refactoring needed, styling started.