Make API more generic/tolerant, add order handling