basic functionality, not secure at all yet.