platform abstraction library