Add error handling to seek.
Add custom Error struct.
Add aliases for weird types to make API more readable.