Added rest of headers, made sync & async versions of the functions