removed intermediary interfaces, now everything feels more perl natural