Add surface creation

This PR introduces a preliminary method of creating a surface and attaching it to each monitor present.
Are the trailing underscores on purpose?