Move utility functions/macros to a different file
Move main "access" function to a separate file
Update return codes
Move private types to a separate header file
Move private types to a separate header file (2)