Split up into individual files, cleanup