Converted to generic independent object to be easily imported and configured