moved init inline for more flexibility and one less request