finished basic design implementation