Basic functional API