Updated header
Re-implemented entire compatibility layer