implemented puppet assembly