Implement a bit cleaner API, add entities for clarity.