initial impelementation with basic test