We cant the code to be easier to maintain

Check this out @Custodius