Updated to work as a vendor class + added composer