Added transient types and reworked api a bit