I need to write better corner-case handling.