We should build something generic and allow it to be configured for use with w3