placeholder class moved to lib