Create abstract api layer