All working! Refactoring needed.