A more clean interface and ability to work with primitive parameters