Template, but with poor implementation. Need to find a better way to do this.