Abstract out code, add frontend interface