converted to work with composer