Separate under the hood into separate files