better organization of buffer, placeholder, and view