seperated function handlers and interpreter logic