moved back to symfony fundamentals instead of silex due to code getting way too ugly and procedural, or too complex in attempts to clean up