base for future widget work