All process implemented. TODO: add logging.