done all as static instance