initial commit it compile,  note: it can be used as a base for any minimal API