semicolon party plus some refacotring