More API stuff... and specification for better API