quick whack at basic functionality